/*****************************************************************************/
/*  This is an unpublished work, the copyright in which vests in Silicon Image
 *  GmbH. The information contained herein is the property of Silicon Image GmbH
 *  and is supplied without liability for errors or omissions. No part may be
 *  reproduced or used expect as authorized by contract or other written
 *  permission. Copyright(c) Silicon Image GmbH, 2009, all rights reserved.
 */
/*****************************************************************************/
#include <ebase/types.h>
#include <ebase/trace.h>
#include <ebase/builtins.h>

#include <common/return_codes.h>

#include "isi.h"
#include "isi_iss.h"
#include "isi_priv.h"
#include "OV8865_MIPI_priv.h"


/*****************************************************************************
 * DEFINES
 *****************************************************************************/


/*****************************************************************************
 * GLOBALS
 *****************************************************************************/

const IsiRegDescription_t Sensor_g_aRegDescription_onelane[] =
{
	{0x0000 ,0x00,"eTableEnd",eTableEnd}
};

// Image sensor register settings default values taken from data sheet OV8865 Camera Application Notes R1.07-2.
// The settings may be altered by the code in IsiSetupSensor.
const IsiRegDescription_t Sensor_g_aRegDescription_twolane[] =
{
	//Initial to Raw 10bit 1632x1224 30fps 4lane 720M bps/lane
	//OV8865 setting version History
	//
	//1. 01/11/2013 V13
	// base on OV8865_BA_00_13 
	// 1. Initial complete release
	//
	//2. v00_14_00 (01/14/2013) 
	// change 3636 and sub-sample (etc., quarter size) settings
	//
	//3. V00_16_00 (02/28/2013)
	// change sub4/sub2, 1/2 and 1/4 speed settings.
	//
	//4. V00_17_00 (03/13/2013)
	// Fix sub4 settings and disable level trigger
	//
	//5. V00_19_00 (05/03/2013)
	// adjust setting for ED version, 373b, 37a3, 37a5, 4000
	//
	//6. V00_20_00 (05/06/2013)
	// adjust blc setting for sub2/sub4 formats
	//
	//7. V00_21_00 (05/08/2013)
	// adjust blc setting for full size (use bottom black lines)
	//
	//8. V00_22_00 (06/06/2013)
	// change 360c[5:0] from 20 to 1d, also 3755=40
	//
	//9. V00_23_00 (8/29/2013)
	// change 3612/3613 for PWR_SAVE for quarter & less output
	// Adjust DPC settings from the default values
	//
	//9. V00_24_00 (9/18/2013)
	// change 37xx setting for PWR_SAVE for full & quarter above output
	//
	//10.V00_24_00_a (10/22/2013)
	// add 3d85/3d8c/3d85 for otp auto load at power on
	// add 5b00~5b05 for odpc related register control
	//
	//11.V00_24_00_a (12/05/2013)
	// changd 375c, 3767,3769,376c,376d,3830,402b,402e to use bottom zline
	//
	//
	// XVCLK=24Mhz, sysclk=72Mhz
	// MIPI 4 lane, 720Mbps/lane
	{0x0103, 0x01,"0x0100",eReadWrite},//software reset
	{0x0 ,0x2,"0x0100",eDelay},// delay 2ms
	{0x0100, 0x00,"0x0100",eReadWrite},//software standby
	{0x0100, 0x00,"0x0100",eReadWrite},//
	{0x0100, 0x00,"0x0100",eReadWrite},//
	{0x0100, 0x00,"0x0100",eReadWrite},//
	{0x3638, 0xff,"0x0100",eReadWrite},//analog control
	{0x0302, 0x1e,"0x0100",eReadWrite},//PLL
	{0x0303, 0x00,"0x0100",eReadWrite},//PLL
	{0x0304, 0x03,"0x0100",eReadWrite},//PLL
	{0x030e, 0x00,"0x0100",eReadWrite},//PLL
	{0x030f, 0x09,"0x0100",eReadWrite},//PLL
	{0x0312, 0x01,"0x0100",eReadWrite},//PLL
	{0x031e, 0x0c,"0x0100",eReadWrite},//PLL
	{0x3015, 0x01,"0x0100",eReadWrite},//clock Div
	{0x3018, 0x72,"0x0100",eReadWrite},//MIPI 4 lane
	{0x3020, 0x93,"0x0100",eReadWrite},//clock normal, pclk/1
	{0x3022, 0x01,"0x0100",eReadWrite},//pd_mini enable when rst_sync
	{0x3031, 0x0a,"0x0100",eReadWrite},//10-bit
	{0x3106, 0x01,"0x0100",eReadWrite},//PLL
	{0x3305, 0xf1,"0x0100",eReadWrite},//
	{0x3308, 0x00,"0x0100",eReadWrite},//
	{0x3309, 0x28,"0x0100",eReadWrite},//
	{0x330a, 0x00,"0x0100",eReadWrite},//
	{0x330b, 0x20,"0x0100",eReadWrite},//
	{0x330c, 0x00,"0x0100",eReadWrite},//
	{0x330d, 0x00,"0x0100",eReadWrite},//
	{0x330e, 0x00,"0x0100",eReadWrite},//
	{0x330f, 0x40,"0x0100",eReadWrite},//
	{0x3307, 0x04,"0x0100",eReadWrite},//
	{0x3604, 0x04,"0x0100",eReadWrite},//analog control
	{0x3602, 0x30,"0x0100",eReadWrite},//
	{0x3605, 0x00,"0x0100",eReadWrite},//
	{0x3607, 0x20,"0x0100",eReadWrite},//
	{0x3608, 0x11,"0x0100",eReadWrite},//
	{0x3609, 0x68,"0x0100",eReadWrite},//
	{0x360a, 0x40,"0x0100",eReadWrite},//
	{0x360c, 0xdd,"0x0100",eReadWrite},//
	{0x360e, 0x0c,"0x0100",eReadWrite},//
	{0x3610, 0x07,"0x0100",eReadWrite},//
	{0x3612, 0x86,"0x0100",eReadWrite},//
	{0x3613, 0x58,"0x0100",eReadWrite},//
	{0x3614, 0x28,"0x0100",eReadWrite},//
	{0x3617, 0x40,"0x0100",eReadWrite},//
	{0x3618, 0x5a,"0x0100",eReadWrite},//
	{0x3619, 0x9b,"0x0100",eReadWrite},//
	{0x361c, 0x00,"0x0100",eReadWrite},//
	{0x361d, 0x60,"0x0100",eReadWrite},//
	{0x3631, 0x60,"0x0100",eReadWrite},//
	{0x3633, 0x10,"0x0100",eReadWrite},//
	{0x3634, 0x10,"0x0100",eReadWrite},//
	{0x3635, 0x10,"0x0100",eReadWrite},//
	{0x3636, 0x10,"0x0100",eReadWrite},//
	{0x3641, 0x55,"0x0100",eReadWrite},//MIPI settings
	{0x3646, 0x86,"0x0100",eReadWrite},//MIPI settings
	{0x3647, 0x27,"0x0100",eReadWrite},//MIPI settings
	{0x364a, 0x1b,"0x0100",eReadWrite},//MIPI settings
	{0x3500, 0x00,"0x0100",eReadWrite},//exposurre HH
	{0x3501, 0x4c,"0x0100",eReadWrite},//expouere H
	{0x3502, 0x00,"0x0100",eReadWrite},//exposure L
	{0x3503, 0x00,"0x0100",eReadWrite},//gain no delay, exposure no delay
	{0x3508, 0x02,"0x0100",eReadWrite},//gain H
	{0x3509, 0x00,"0x0100",eReadWrite},//gain L
	{0x3700, 0x24,"0x0100",eReadWrite},//sensor control
	{0x3701, 0x0c,"0x0100",eReadWrite},//
	{0x3702, 0x28,"0x0100",eReadWrite},//
	{0x3703, 0x19,"0x0100",eReadWrite},//
	{0x3704, 0x14,"0x0100",eReadWrite},//
	{0x3705, 0x00,"0x0100",eReadWrite},//
	{0x3706, 0x38,"0x0100",eReadWrite},//
	{0x3707, 0x04,"0x0100",eReadWrite},//
	{0x3708, 0x24,"0x0100",eReadWrite},//
	{0x3709, 0x40,"0x0100",eReadWrite},//
	{0x370a, 0x00,"0x0100",eReadWrite},//
	{0x370b, 0xb8,"0x0100",eReadWrite},//
	{0x370c, 0x04,"0x0100",eReadWrite},//
	{0x3718, 0x12,"0x0100",eReadWrite},//
	{0x3719, 0x31,"0x0100",eReadWrite},//
	{0x3712, 0x42,"0x0100",eReadWrite},//
	{0x3714, 0x12,"0x0100",eReadWrite},//
	{0x371e, 0x19,"0x0100",eReadWrite},//
	{0x371f, 0x40,"0x0100",eReadWrite},//
	{0x3720, 0x05,"0x0100",eReadWrite},//
	{0x3721, 0x05,"0x0100",eReadWrite},//
	{0x3724, 0x02,"0x0100",eReadWrite},//
	{0x3725, 0x02,"0x0100",eReadWrite},//
	{0x3726, 0x06,"0x0100",eReadWrite},//
	{0x3728, 0x05,"0x0100",eReadWrite},//
	{0x3729, 0x02,"0x0100",eReadWrite},//
	{0x372a, 0x03,"0x0100",eReadWrite},//
	{0x372b, 0x53,"0x0100",eReadWrite},//
	{0x372c, 0xa3,"0x0100",eReadWrite},//
	{0x372d, 0x53,"0x0100",eReadWrite},//
	{0x372e, 0x06,"0x0100",eReadWrite},//
	{0x372f, 0x10,"0x0100",eReadWrite},//
	{0x3730, 0x01,"0x0100",eReadWrite},//
	{0x3731, 0x06,"0x0100",eReadWrite},//
	{0x3732, 0x14,"0x0100",eReadWrite},//
	{0x3733, 0x10,"0x0100",eReadWrite},//
	{0x3734, 0x40,"0x0100",eReadWrite},//
	{0x3736, 0x20,"0x0100",eReadWrite},//
	{0x373a, 0x02,"0x0100",eReadWrite},//
	{0x373b, 0x0c,"0x0100",eReadWrite},//
	{0x373c, 0x0a,"0x0100",eReadWrite},//
	{0x373e, 0x03,"0x0100",eReadWrite},//
	{0x3755, 0x40,"0x0100",eReadWrite},//
	{0x3758, 0x00,"0x0100",eReadWrite},//
	{0x3759, 0x4c,"0x0100",eReadWrite},//
	{0x375a, 0x06,"0x0100",eReadWrite},//
	{0x375b, 0x13,"0x0100",eReadWrite},//
	{0x375c, 0x40,"0x0100",eReadWrite},//
	{0x375d, 0x02,"0x0100",eReadWrite},//
	{0x375e, 0x00,"0x0100",eReadWrite},//
	{0x375f, 0x14,"0x0100",eReadWrite},//
	{0x3767, 0x1c,"0x0100",eReadWrite},//
	{0x3768, 0x04,"0x0100",eReadWrite},//
	{0x3769, 0x20,"0x0100",eReadWrite},//
	{0x376c, 0xc0,"0x0100",eReadWrite},//
	{0x376d, 0xc0,"0x0100",eReadWrite},//
	{0x376a, 0x08,"0x0100",eReadWrite},//
	{0x3761, 0x00,"0x0100",eReadWrite},//
	{0x3762, 0x00,"0x0100",eReadWrite},//
	{0x3763, 0x00,"0x0100",eReadWrite},//
	{0x3766, 0xff,"0x0100",eReadWrite},//
	{0x376b, 0x42,"0x0100",eReadWrite},//
	{0x3772, 0x23,"0x0100",eReadWrite},//
	{0x3773, 0x02,"0x0100",eReadWrite},//
	{0x3774, 0x16,"0x0100",eReadWrite},//
	{0x3775, 0x12,"0x0100",eReadWrite},//
	{0x3776, 0x08,"0x0100",eReadWrite},//
	{0x37a0, 0x44,"0x0100",eReadWrite},//
	{0x37a1, 0x3d,"0x0100",eReadWrite},//
	{0x37a2, 0x3d,"0x0100",eReadWrite},//
	{0x37a3, 0x01,"0x0100",eReadWrite},//
	{0x37a4, 0x00,"0x0100",eReadWrite},//
	{0x37a5, 0x08,"0x0100",eReadWrite},//
	{0x37a6, 0x00,"0x0100",eReadWrite},//
	{0x37a7, 0x44,"0x0100",eReadWrite},//
	{0x37a8, 0x58,"0x0100",eReadWrite},//
	{0x37a9, 0x58,"0x0100",eReadWrite},//
	{0x3760, 0x00,"0x0100",eReadWrite},//
	{0x376f, 0x01,"0x0100",eReadWrite},//
	{0x37aa, 0x44,"0x0100",eReadWrite},//
	{0x37ab, 0x2e,"0x0100",eReadWrite},//
	{0x37ac, 0x2e,"0x0100",eReadWrite},//
	{0x37ad, 0x33,"0x0100",eReadWrite},//
	{0x37ae, 0x0d,"0x0100",eReadWrite},//
	{0x37af, 0x0d,"0x0100",eReadWrite},//
	{0x37b0, 0x00,"0x0100",eReadWrite},//
	{0x37b1, 0x00,"0x0100",eReadWrite},//
	{0x37b2, 0x00,"0x0100",eReadWrite},//
	{0x37b3, 0x42,"0x0100",eReadWrite},//
	{0x37b4, 0x42,"0x0100",eReadWrite},//
	{0x37b5, 0x33,"0x0100",eReadWrite},//
	{0x37b6, 0x00,"0x0100",eReadWrite},//
	{0x37b7, 0x00,"0x0100",eReadWrite},//
	{0x37b8, 0x00,"0x0100",eReadWrite},//
	{0x37b9, 0xff,"0x0100",eReadWrite},//sensor control
	{0x3800, 0x00,"0x0100",eReadWrite},//X start H
	{0x3801, 0x0c,"0x0100",eReadWrite},//X start L
	{0x3802, 0x00,"0x0100",eReadWrite},//Y start H
	{0x3803, 0x0c,"0x0100",eReadWrite},//Y start L
	{0x3804, 0x0c,"0x0100",eReadWrite},//X end H
	{0x3805, 0xd3,"0x0100",eReadWrite},//X end L
	{0x3806, 0x09,"0x0100",eReadWrite},//Y end H
	{0x3807, 0xa3,"0x0100",eReadWrite},//Y end L
	{0x3808, 0x06,"0x0100",eReadWrite},//X output size H
	{0x3809, 0x60,"0x0100",eReadWrite},//X output size L
	{0x380a, 0x04,"0x0100",eReadWrite},//Y output size H
	{0x380b, 0xc8,"0x0100",eReadWrite},//Y output size L
	{0x380c, 0x07,"0x0100",eReadWrite},//HTS H
	{0x380d, 0x83,"0x0100",eReadWrite},//HTS L
	{0x380e, 0x04,"0x0100",eReadWrite},//VTS H
	{0x380f, 0xe0,"0x0100",eReadWrite},//VTS L
	{0x3810, 0x00,"0x0100",eReadWrite},//ISP X win H
	{0x3811, 0x04,"0x0100",eReadWrite},//ISP X win L
	{0x3813, 0x04,"0x0100",eReadWrite},//ISP Y win L
	{0x3814, 0x03,"0x0100",eReadWrite},//X inc odd
	{0x3815, 0x01,"0x0100",eReadWrite},//X inc even
	{0x3820, 0x00,"0x0100",eReadWrite},//flip off
	{0x3821, 0x67,"0x0100",eReadWrite},//hsync_en_o, fst_vbin, mirror on
	{0x382a, 0x03,"0x0100",eReadWrite},//Y inc odd
	{0x382b, 0x01,"0x0100",eReadWrite},//Y inc even
	{0x3830, 0x08,"0x0100",eReadWrite},//ablc_use_num[5:1]
	{0x3836, 0x02,"0x0100",eReadWrite},//zline_use_num[5:1]
	{0x3837, 0x18,"0x0100",eReadWrite},//vts_add_dis, cexp_gt_vts_offs=8
	{0x3841, 0xff,"0x0100",eReadWrite},//auto size
	{0x3846, 0x88,"0x0100",eReadWrite},//Y/X boundary pixel numbber for auto size mode
	{0x3d85, 0x06,"0x0100",eReadWrite},//OTP power up load data enable, OTP power up load setting enable
	{0x3d8c, 0x75,"0x0100",eReadWrite},//OTP setting start address H
	{0x3d8d, 0xef,"0x0100",eReadWrite},//OTP setting start address L
	{0x3f08, 0x0b,"0x0100",eReadWrite},//
	{0x4000, 0xf1,"0x0100",eReadWrite},//our range trig en, format chg en, gan chg en, exp chg en, median en
	{0x4001, 0x14,"0x0100",eReadWrite},//left 32 column, final BLC offset limitation enable
	{0x4005, 0x10,"0x0100",eReadWrite},//BLC target
	{0x400b, 0x0c,"0x0100",eReadWrite},//start line =0, offset limitation en, cut range function en
	{0x400d, 0x10,"0x0100",eReadWrite},//offset trigger threshold
	{0x401b, 0x00,"0x0100",eReadWrite},//
	{0x401d, 0x00,"0x0100",eReadWrite},//
	{0x4020, 0x01,"0x0100",eReadWrite},//anchor left start H
	{0x4021, 0x20,"0x0100",eReadWrite},//anchor left start L
	{0x4022, 0x01,"0x0100",eReadWrite},//anchor left end H
	{0x4023, 0x9f,"0x0100",eReadWrite},//anchor left end L
	{0x4024, 0x03,"0x0100",eReadWrite},//anchor right start H
	{0x4025, 0xe0,"0x0100",eReadWrite},//anchor right start L
	{0x4026, 0x04,"0x0100",eReadWrite},//anchor right end H
	{0x4027, 0x5f,"0x0100",eReadWrite},//anchor right end L
	{0x4028, 0x00,"0x0100",eReadWrite},//top zero line start
	{0x4029, 0x02,"0x0100",eReadWrite},//top zero line number
	{0x402a, 0x04,"0x0100",eReadWrite},//top black line start
	{0x402b, 0x04,"0x0100",eReadWrite},//top black line number
	{0x402c, 0x02,"0x0100",eReadWrite},//bottom zero line start
	{0x402d, 0x02,"0x0100",eReadWrite},//bottom zero line number
	{0x402e, 0x08,"0x0100",eReadWrite},//bottom black line start
	{0x402f, 0x02,"0x0100",eReadWrite},//bottom black line number
	{0x401f, 0x00,"0x0100",eReadWrite},//anchor one disable
	{0x4034, 0x3f,"0x0100",eReadWrite},//limitation BLC offset
	{0x4300, 0xff,"0x0100",eReadWrite},//clip max H
	{0x4301, 0x00,"0x0100",eReadWrite},//clip min H
	{0x4302, 0x0f,"0x0100",eReadWrite},//clip min L/clip max L
	{0x4500, 0x40,"0x0100",eReadWrite},//ADC sync control
	{0x4503, 0x10,"0x0100",eReadWrite},//
	{0x4601, 0x74,"0x0100",eReadWrite},//V FIFO control
	{0x481f, 0x32,"0x0100",eReadWrite},//clk_prepare_min
	{0x4837, 0x16,"0x0100",eReadWrite},//clock period
	{0x4850, 0x10,"0x0100",eReadWrite},//lane select
	{0x4851, 0x32,"0x0100",eReadWrite},//lane select
	{0x4b00, 0x2a,"0x0100",eReadWrite},//LVDS settings
	{0x4b0d, 0x00,"0x0100",eReadWrite},//LVDS settings
	{0x4d00, 0x04,"0x0100",eReadWrite},//temperature sensor
	{0x4d01, 0x18,"0x0100",eReadWrite},//temperature sensor
	{0x4d02, 0xc3,"0x0100",eReadWrite},//temperature sensor
	{0x4d03, 0xff,"0x0100",eReadWrite},//temperature sensor
	{0x4d04, 0xff,"0x0100",eReadWrite},//temperature sensor
	{0x4d05, 0xff,"0x0100",eReadWrite},//temperature sensor
	{0x5000, 0x96,"0x0100",eReadWrite},//LENC on, MWB on, BPC on, WPC on
	{0x5001, 0x01,"0x0100",eReadWrite},//BLC on
	{0x5002, 0x08,"0x0100",eReadWrite},//vario pixel off
	{0x5901, 0x00,"0x0100",eReadWrite},//
	{0x5e00, 0x00,"0x0100",eReadWrite},//test pattern off
	{0x5e01, 0x41,"0x0100",eReadWrite},//window cut enable
	{0x0100, 0x01,"0x0100",eReadWrite},//wake up, streaming
	{0x5b00, 0x02,"0x0100",eReadWrite},//OTP DPC start address H
	{0x5b01, 0xd0,"0x0100",eReadWrite},//OTP DPC start address L
	{0x5b02, 0x03,"0x0100",eReadWrite},//OTP DPC end address H
	{0x5b03, 0xff,"0x0100",eReadWrite},//OTP DPC end address L
	{0x5b05, 0x6c,"0x0100",eReadWrite},//Recover method 11, use 0x3ff to recover cluster, flip option enable
	{0x5780, 0xfc,"0x0100",eReadWrite},//DPC
	{0x5781, 0xdf,"0x0100",eReadWrite},//
	{0x5782, 0x3f,"0x0100",eReadWrite},//
	{0x5783, 0x08,"0x0100",eReadWrite},//
	{0x5784, 0x0c,"0x0100",eReadWrite},//
	{0x5786, 0x20,"0x0100",eReadWrite},//
	{0x5787, 0x40,"0x0100",eReadWrite},//
	{0x5788, 0x08,"0x0100",eReadWrite},//
	{0x5789, 0x08,"0x0100",eReadWrite},//
	{0x578a, 0x02,"0x0100",eReadWrite},//
	{0x578b, 0x01,"0x0100",eReadWrite},//
	{0x578c, 0x01,"0x0100",eReadWrite},//
	{0x578d, 0x0c,"0x0100",eReadWrite},//
	{0x578e, 0x02,"0x0100",eReadWrite},//
	{0x578f, 0x01,"0x0100",eReadWrite},//
	{0x5790, 0x01,"0x0100",eReadWrite},//DPC
	{0x5800, 0x1d,"0x0100",eReadWrite},//lens correction
	{0x5801, 0x0e,"0x0100",eReadWrite},//
	{0x5802, 0x0c,"0x0100",eReadWrite},//
	{0x5803, 0x0c,"0x0100",eReadWrite},//
	{0x5804, 0x0f,"0x0100",eReadWrite},//
	{0x5805, 0x22,"0x0100",eReadWrite},//
	{0x5806, 0x0a,"0x0100",eReadWrite},//
	{0x5807, 0x06,"0x0100",eReadWrite},//
	{0x5808, 0x05,"0x0100",eReadWrite},//
	{0x5809, 0x05,"0x0100",eReadWrite},//
	{0x580a, 0x07,"0x0100",eReadWrite},//
	{0x580b, 0x0a,"0x0100",eReadWrite},//
	{0x580c, 0x06,"0x0100",eReadWrite},//
	{0x580d, 0x02,"0x0100",eReadWrite},//
	{0x580e, 0x00,"0x0100",eReadWrite},//
	{0x580f, 0x00,"0x0100",eReadWrite},//
	{0x5810, 0x03,"0x0100",eReadWrite},//
	{0x5811, 0x07,"0x0100",eReadWrite},//
	{0x5812, 0x06,"0x0100",eReadWrite},//
	{0x5813, 0x02,"0x0100",eReadWrite},//
	{0x5814, 0x00,"0x0100",eReadWrite},//
	{0x5815, 0x00,"0x0100",eReadWrite},//
	{0x5816, 0x03,"0x0100",eReadWrite},//
	{0x5817, 0x07,"0x0100",eReadWrite},//
	{0x5818, 0x09,"0x0100",eReadWrite},//
	{0x5819, 0x06,"0x0100",eReadWrite},//
	{0x581a, 0x04,"0x0100",eReadWrite},//
	{0x581b, 0x04,"0x0100",eReadWrite},//
	{0x581c, 0x06,"0x0100",eReadWrite},//
	{0x581d, 0x0a,"0x0100",eReadWrite},//
	{0x581e, 0x19,"0x0100",eReadWrite},//
	{0x581f, 0x0d,"0x0100",eReadWrite},//
	{0x5820, 0x0b,"0x0100",eReadWrite},//
	{0x5821, 0x0b,"0x0100",eReadWrite},//
	{0x5822, 0x0e,"0x0100",eReadWrite},//
	{0x5823, 0x22,"0x0100",eReadWrite},//
	{0x5824, 0x23,"0x0100",eReadWrite},//
	{0x5825, 0x28,"0x0100",eReadWrite},//
	{0x5826, 0x29,"0x0100",eReadWrite},//
	{0x5827, 0x27,"0x0100",eReadWrite},//
	{0x5828, 0x13,"0x0100",eReadWrite},//
	{0x5829, 0x26,"0x0100",eReadWrite},//
	{0x582a, 0x33,"0x0100",eReadWrite},//
	{0x582b, 0x32,"0x0100",eReadWrite},//
	{0x582c, 0x33,"0x0100",eReadWrite},//
	{0x582d, 0x16,"0x0100",eReadWrite},//
	{0x582e, 0x14,"0x0100",eReadWrite},//
	{0x582f, 0x30,"0x0100",eReadWrite},//
	{0x5830, 0x31,"0x0100",eReadWrite},//
	{0x5831, 0x30,"0x0100",eReadWrite},//
	{0x5832, 0x15,"0x0100",eReadWrite},//
	{0x5833, 0x26,"0x0100",eReadWrite},//
	{0x5834, 0x23,"0x0100",eReadWrite},//
	{0x5835, 0x21,"0x0100",eReadWrite},//
	{0x5836, 0x23,"0x0100",eReadWrite},//
	{0x5837, 0x05,"0x0100",eReadWrite},//
	{0x5838, 0x36,"0x0100",eReadWrite},//
	{0x5839, 0x27,"0x0100",eReadWrite},//
	{0x583a, 0x28,"0x0100",eReadWrite},//
	{0x583b, 0x26,"0x0100",eReadWrite},//
	{0x583c, 0x24,"0x0100",eReadWrite},//
	{0x583d, 0xdf,"0x0100",eReadWrite},//lens correction
	{0x0000 ,0x00,"eTableEnd",eTableEnd}
};

const IsiRegDescription_t Sensor_g_1632x1224_twolane[] =
{	
	// XVCLK=24Mhz, sysclk=72Mhz
	// MIPI 4 lane, 720Mbps/lane
	{0x0100, 0x00, "0x0100",eReadWrite}, //software standby
	{0x030f, 0x09, "0x0100",eReadWrite}, //PLL
	{0x3018, 0x32, "0x0100",eReadWrite}, //MIPI 2 lane
	{0x3106, 0x01, "0x0100",eReadWrite}, //
	{0x3501, 0x4c, "0x0100",eReadWrite}, //expouere H
	{0x3502, 0x00, "0x0100",eReadWrite}, //exposure L
	{0x3700, 0x24, "0x0100",eReadWrite}, //sensor control
	{0x3701, 0x0c, "0x0100",eReadWrite}, //
	{0x3702, 0x28, "0x0100",eReadWrite}, //
	{0x3703, 0x19, "0x0100",eReadWrite}, //
	{0x3704, 0x14, "0x0100",eReadWrite}, //
	{0x3706, 0x38, "0x0100",eReadWrite}, //
	{0x3707, 0x04, "0x0100",eReadWrite}, //
	{0x3708, 0x24, "0x0100",eReadWrite}, //
	{0x3709, 0x40, "0x0100",eReadWrite}, //
	{0x370a, 0x00, "0x0100",eReadWrite}, //
	{0x370b, 0xb8, "0x0100",eReadWrite}, //
	{0x370c, 0x04, "0x0100",eReadWrite}, //
	{0x3718, 0x12, "0x0100",eReadWrite}, //
	{0x3712, 0x42, "0x0100",eReadWrite}, //
	{0x371e, 0x19, "0x0100",eReadWrite}, //
	{0x371f, 0x40, "0x0100",eReadWrite}, //
	{0x3720, 0x05, "0x0100",eReadWrite}, //
	{0x3721, 0x05, "0x0100",eReadWrite}, //
	{0x3724, 0x02, "0x0100",eReadWrite}, //
	{0x3725, 0x02, "0x0100",eReadWrite}, //
	{0x3726, 0x06, "0x0100",eReadWrite}, //
	{0x3728, 0x05, "0x0100",eReadWrite}, //
	{0x3729, 0x02, "0x0100",eReadWrite}, //
	{0x372a, 0x03, "0x0100",eReadWrite}, //
	{0x372b, 0x53, "0x0100",eReadWrite}, //
	{0x372c, 0xa3, "0x0100",eReadWrite}, //
	{0x372d, 0x53, "0x0100",eReadWrite}, //
	{0x372e, 0x06, "0x0100",eReadWrite}, //
	{0x372f, 0x10, "0x0100",eReadWrite}, //
	{0x3730, 0x01, "0x0100",eReadWrite}, //
	{0x3731, 0x06, "0x0100",eReadWrite}, //
	{0x3732, 0x14, "0x0100",eReadWrite}, //
	{0x3736, 0x20, "0x0100",eReadWrite}, //
	{0x373a, 0x02, "0x0100",eReadWrite}, //
	{0x373b, 0x0c, "0x0100",eReadWrite}, //
	{0x373c, 0x0a, "0x0100",eReadWrite}, //
	{0x373e, 0x03, "0x0100",eReadWrite}, //
	{0x375a, 0x06, "0x0100",eReadWrite}, //
	{0x375b, 0x13, "0x0100",eReadWrite}, //
	{0x375d, 0x02, "0x0100",eReadWrite}, //
	{0x375f, 0x14, "0x0100",eReadWrite}, //
	{0x3767, 0x1c, "0x0100",eReadWrite}, //
	{0x3772, 0x23, "0x0100",eReadWrite}, //
	{0x3773, 0x02, "0x0100",eReadWrite}, //
	{0x3774, 0x16, "0x0100",eReadWrite}, //
	{0x3775, 0x12, "0x0100",eReadWrite}, //
	{0x3776, 0x08, "0x0100",eReadWrite}, //
	{0x37a0, 0x44, "0x0100",eReadWrite}, //
	{0x37a1, 0x3d, "0x0100",eReadWrite}, //
	{0x37a2, 0x3d, "0x0100",eReadWrite}, //
	{0x37a3, 0x01, "0x0100",eReadWrite}, //
	{0x37a5, 0x08, "0x0100",eReadWrite}, //
	{0x37a7, 0x44, "0x0100",eReadWrite}, //
	{0x37a8, 0x58, "0x0100",eReadWrite}, //
	{0x37a9, 0x58, "0x0100",eReadWrite}, //
	{0x37aa, 0x44, "0x0100",eReadWrite}, //
	{0x37ab, 0x2e, "0x0100",eReadWrite}, //
	{0x37ac, 0x2e, "0x0100",eReadWrite}, //
	{0x37ad, 0x33, "0x0100",eReadWrite}, //
	{0x37ae, 0x0d, "0x0100",eReadWrite}, //
	{0x37af, 0x0d, "0x0100",eReadWrite}, //
	{0x37b3, 0x42, "0x0100",eReadWrite}, //
	{0x37b4, 0x42, "0x0100",eReadWrite}, //
	{0x37b5, 0x33, "0x0100",eReadWrite}, //
	{0x3808, 0x06, "0x0100",eReadWrite}, //X output size H
	{0x3809, 0x60, "0x0100",eReadWrite}, //X output size L
	{0x380a, 0x04, "0x0100",eReadWrite}, //Y output size H
	{0x380b, 0xc8, "0x0100",eReadWrite}, //Y output size L
	{0x380c, 0x07, "0x0100",eReadWrite}, //HTS H
	{0x380d, 0x83, "0x0100",eReadWrite}, //HTS L
	{0x380e, 0x04, "0x0100",eReadWrite}, //VTS H
	{0x380f, 0xe0, "0x0100",eReadWrite}, //VTS L
	{0x3813, 0x04, "0x0100",eReadWrite}, //ISP Y win L
	{0x3814, 0x03, "0x0100",eReadWrite}, //X inc odd
	{0x3821, 0x67, "0x0100",eReadWrite}, //hsync_en_o, fst_vbin, mirror on
	{0x382a, 0x03, "0x0100",eReadWrite}, //Y inc odd
	{0x382b, 0x01, "0x0100",eReadWrite}, //Y inc even
	{0x3830, 0x08, "0x0100",eReadWrite}, //ablc_use_num[5:1]
	{0x3836, 0x02, "0x0100",eReadWrite}, //zline_use_num[5:1]
	{0x3846, 0x88, "0x0100",eReadWrite}, //Y/X boundary pixel numbber for auto size mode
	{0x3f08, 0x0b, "0x0100",eReadWrite}, //
	{0x4000, 0xf1, "0x0100",eReadWrite}, //our range trig en, format chg en, gan chg en, exp chg en, median en
	{0x4001, 0x14, "0x0100",eReadWrite}, //left 32 column, final BLC offset limitation enable
	{0x4020, 0x01, "0x0100",eReadWrite}, //anchor left start H
	{0x4021, 0x20, "0x0100",eReadWrite}, //anchor left start L
	{0x4022, 0x01, "0x0100",eReadWrite}, //anchor left end H
	{0x4023, 0x9f, "0x0100",eReadWrite}, //anchor left end L
	{0x4024, 0x03, "0x0100",eReadWrite}, //anchor right start H
	{0x4025, 0xe0, "0x0100",eReadWrite}, //anchor right start L
	{0x4026, 0x04, "0x0100",eReadWrite}, //anchor right end H
	{0x4027, 0x5f, "0x0100",eReadWrite}, //anchor right end L
	{0x402a, 0x04, "0x0100",eReadWrite}, //top black line start
	{0x402b, 0x04, "0x0100",eReadWrite}, //top black line number
	{0x402c, 0x02, "0x0100",eReadWrite}, //bottom zero line start
	{0x402d, 0x02, "0x0100",eReadWrite}, //bottom zero line number
	{0x402e, 0x08, "0x0100",eReadWrite}, //bottom black line start
	{0x4500, 0x40, "0x0100",eReadWrite}, //ADC sync control
	{0x4601, 0x74, "0x0100",eReadWrite}, //V FIFO control
	{0x5002, 0x08, "0x0100",eReadWrite}, //vario pixel off
	{0x5901, 0x00, "0x0100",eReadWrite}, //
	{0x0100, 0x01, "0x0100",eReadWrite}, //wake up, streaming 								 
	{0x0000 ,0x00,"eTableEnd",eTableEnd}

};
const IsiRegDescription_t Sensor_g_1632x1224P30_twolane_fpschg[] =
{    
	{0x380e, 0x04,"0x0100",eReadWrite}, // VTS H							 
	{0x380f, 0xdc,"0x0100",eReadWrite}, // VTS L
	{0x0000 ,0x00,"eTableEnd",eTableEnd}

};

const IsiRegDescription_t Sensor_g_1632x1224P25_twolane_fpschg[] =
{  	
	{0x380e, 0x05,"0x0100",eReadWrite}, // VTS H							 
	{0x380f, 0xd4,"0x0100",eReadWrite}, // VTS L
	{0x0000 ,0x00,"eTableEnd",eTableEnd}
};


const IsiRegDescription_t Sensor_g_1632x1224P20_twolane_fpschg[] =
{
    {0x380e, 0x07,"0x0100",eReadWrite}, // VTS H							 
	{0x380f, 0x4a,"0x0100",eReadWrite}, // VTS L
	{0x0000 ,0x00,"eTableEnd",eTableEnd}

};

const IsiRegDescription_t Sensor_g_1632x1224P15_twolane_fpschg[] =
{
		
	{0x380e, 0x09,"0x0100",eReadWrite}, // VTS H							 
	{0x380f, 0xb8,"0x0100",eReadWrite}, // VTS L
	{0x0000 ,0x00,"eTableEnd",eTableEnd}

};

const IsiRegDescription_t Sensor_g_1632x1224P10_twolane_fpschg[] =
{ 
	{0x380e, 0x0e,"0x0100",eReadWrite}, // VTS H							 
	{0x380f, 0x94,"0x0100",eReadWrite}, // VTS L	
	{0x0000 ,0x00,"eTableEnd",eTableEnd}

};

const IsiRegDescription_t Sensor_g_3264x2448_twolane[] =
{
	// XVCLK=24Mhz, sysclk=72Mhz
	// MIPI 4 lane, 720Mbps/lane, 15fps
	{0x0100,0x00,"0x0100",eReadWrite}, // software standby
	{0x030f,0x04,"0x0100",eReadWrite}, // PLL
	{0x3018,0x32,"0x0100",eReadWrite}, //
	{0x3106,0x21,"0x0100",eReadWrite}, //
	{0x3501,0x98,"0x0100",eReadWrite}, // expouere H
	{0x3502,0x60,"0x0100",eReadWrite}, // exposure L
	{0x3700,0x24,"0x0100",eReadWrite}, // sensor control
	{0x3701,0x0c,"0x0100",eReadWrite}, //
	{0x3702,0x28,"0x0100",eReadWrite}, //
	{0x3703,0x19,"0x0100",eReadWrite}, //
	{0x3704,0x14,"0x0100",eReadWrite}, //
	{0x3706,0x38,"0x0100",eReadWrite}, //
	{0x3707,0x04,"0x0100",eReadWrite}, //
	{0x3708,0x24,"0x0100",eReadWrite}, //
	{0x3709,0x40,"0x0100",eReadWrite}, //
	{0x370a,0x00,"0x0100",eReadWrite}, //
	{0x370b,0xb8,"0x0100",eReadWrite}, //
	{0x370c,0x04,"0x0100",eReadWrite}, //
	{0x3718,0x12,"0x0100",eReadWrite}, //
	{0x3712,0x42,"0x0100",eReadWrite}, //
	{0x371e,0x19,"0x0100",eReadWrite}, //
	{0x371f,0x40,"0x0100",eReadWrite}, //
	{0x3720,0x05,"0x0100",eReadWrite}, //
	{0x3721,0x05,"0x0100",eReadWrite}, //
	{0x3724,0x02,"0x0100",eReadWrite}, //
	{0x3725,0x02,"0x0100",eReadWrite}, //
	{0x3726,0x06,"0x0100",eReadWrite}, //
	{0x3728,0x05,"0x0100",eReadWrite}, //
	{0x3729,0x02,"0x0100",eReadWrite}, //
	{0x372a,0x03,"0x0100",eReadWrite}, //
	{0x372b,0x53,"0x0100",eReadWrite}, //
	{0x372c,0xa3,"0x0100",eReadWrite}, //
	{0x372d,0x53,"0x0100",eReadWrite}, //
	{0x372e,0x06,"0x0100",eReadWrite}, //
	{0x372f,0x10,"0x0100",eReadWrite}, //
	{0x3730,0x01,"0x0100",eReadWrite}, //
	{0x3731,0x06,"0x0100",eReadWrite}, //
	{0x3732,0x14,"0x0100",eReadWrite}, //
	{0x3736,0x20,"0x0100",eReadWrite}, //
	{0x373a,0x02,"0x0100",eReadWrite}, //
	{0x373b,0x0c,"0x0100",eReadWrite}, //
	{0x373c,0x0a,"0x0100",eReadWrite}, //
	{0x373e,0x03,"0x0100",eReadWrite}, //
	{0x375a,0x06,"0x0100",eReadWrite}, //
	{0x375b,0x13,"0x0100",eReadWrite}, //
	{0x375d,0x02,"0x0100",eReadWrite}, //
	{0x375f,0x14,"0x0100",eReadWrite}, //
	{0x3767,0x1e,"0x0100",eReadWrite}, //
	{0x3772,0x23,"0x0100",eReadWrite}, //
	{0x3773,0x02,"0x0100",eReadWrite}, //
	{0x3774,0x16,"0x0100",eReadWrite}, //
	{0x3775,0x12,"0x0100",eReadWrite}, //
	{0x3776,0x08,"0x0100",eReadWrite}, //
	{0x37a0,0x44,"0x0100",eReadWrite}, //
	{0x37a1,0x3d,"0x0100",eReadWrite}, //
	{0x37a2,0x3d,"0x0100",eReadWrite}, //
	{0x37a3,0x02,"0x0100",eReadWrite}, //
	{0x37a5,0x09,"0x0100",eReadWrite}, //
	{0x37a7,0x44,"0x0100",eReadWrite}, //
	{0x37a8,0x58,"0x0100",eReadWrite}, //
	{0x37a9,0x58,"0x0100",eReadWrite}, //
	{0x37aa,0x44,"0x0100",eReadWrite}, //
	{0x37ab,0x2e,"0x0100",eReadWrite}, //
	{0x37ac,0x2e,"0x0100",eReadWrite}, //
	{0x37ad,0x33,"0x0100",eReadWrite}, //
	{0x37ae,0x0d,"0x0100",eReadWrite}, //
	{0x37af,0x0d,"0x0100",eReadWrite}, //
	{0x37b3,0x42,"0x0100",eReadWrite}, //
	{0x37b4,0x42,"0x0100",eReadWrite}, //
	{0x37b5,0x33,"0x0100",eReadWrite}, //
	{0x3808,0x0c,"0x0100",eReadWrite}, // X output size H
	{0x3809,0xc0,"0x0100",eReadWrite}, // X output size L
	{0x380a,0x09,"0x0100",eReadWrite}, // Y output size H
	{0x380b,0x90,"0x0100",eReadWrite}, // Y output size L
	{0x380c,0x07,"0x0100",eReadWrite}, // HTS H
	{0x380d,0x98,"0x0100",eReadWrite}, // HTS L
	{0x380e,0x09,"0x0100",eReadWrite}, // VTS H
	{0x380f,0xa6,"0x0100",eReadWrite}, // VTS L
	{0x3813,0x02,"0x0100",eReadWrite}, // ISP Y win L
	{0x3814,0x01,"0x0100",eReadWrite}, // X inc odd
	{0x3821,0x46,"0x0100",eReadWrite}, // hsync_en_o, fst_vbin, mirror on
	{0x382a,0x01,"0x0100",eReadWrite}, // Y inc odd
	{0x382b,0x01,"0x0100",eReadWrite}, // Y inc even
	{0x3830,0x04,"0x0100",eReadWrite}, // ablc_use_num[5:1]
	{0x3836,0x01,"0x0100",eReadWrite}, // zline_use_num[5:1]
	{0x3846,0x48,"0x0100",eReadWrite}, // Y/X boundary pixel numbber for auto size mode
	{0x3f08,0x0b,"0x0100",eReadWrite}, //
	{0x4000,0xf1,"0x0100",eReadWrite}, // our range trig en, format chg en, gan chg en, exp chg en, median en
	{0x4001,0x04,"0x0100",eReadWrite}, // left 32 column, final BLC offset limitation enable
	{0x4020,0x02,"0x0100",eReadWrite}, // anchor left start H
	{0x4021,0x40,"0x0100",eReadWrite}, // anchor left start L
	{0x4022,0x03,"0x0100",eReadWrite}, // anchor left end H
	{0x4023,0x3f,"0x0100",eReadWrite}, // anchor left end L
	{0x4024,0x07,"0x0100",eReadWrite}, // anchor right start H
	{0x4025,0xc0,"0x0100",eReadWrite}, // anchor right start L
	{0x4026,0x08,"0x0100",eReadWrite}, // anchor right end H
	{0x4027,0xbf,"0x0100",eReadWrite}, // anchor right end L
	{0x402a,0x04,"0x0100",eReadWrite}, // top black line start
	{0x402b,0x04,"0x0100",eReadWrite}, // top black line number
	{0x402c,0x02,"0x0100",eReadWrite}, // bottom zero line start
	{0x402d,0x02,"0x0100",eReadWrite}, // bottom zero line number
	{0x402e,0x08,"0x0100",eReadWrite}, // bottom black line start
	{0x4500,0x68,"0x0100",eReadWrite}, // ADC sync control
	{0x4601,0x10,"0x0100",eReadWrite}, // V FIFO control
	{0x5002,0x08,"0x0100",eReadWrite}, // vario pixel off
	{0x5901,0x00,"0x0100",eReadWrite}, //
	{0x0100,0x01,"0x0100",eReadWrite}, // wake up, streaming								
	{0x0000 ,0x00,"eTableEnd",eTableEnd}

};
const IsiRegDescription_t Sensor_g_3264x2448P7_twolane_fpschg[] =
{
    {0x380e, 0x13,"0x0100",eReadWrite}, // VTS H						
	{0x380f, 0x54,"0x0100",eReadWrite}, // VTS L						
    {0x0000 ,0x00,"eTableEnd",eTableEnd}
};

const IsiRegDescription_t Sensor_g_3264x2448P15_twolane_fpschg[] =
{
    {0x380e, 0x09,"0x0100",eReadWrite}, // VTS H						
	{0x380f, 0xaa,"0x0100",eReadWrite}, // VTS L						
    {0x0000 ,0x00,"eTableEnd",eTableEnd}
};



const IsiRegDescription_t Sensor_g_aRegDescription_fourlane[] =
{
	// XVCLK=24Mhz, sysclk=72Mhz
	// MIPI 4 lane, 720Mbps/lane
	{0x0103, 0x01,"0x0100",eReadWrite},//software reset
	{0x0 ,0x2,"0x0100",eDelay},// delay 2ms
	{0x0100, 0x00,"0x0100",eReadWrite},//software standby
	{0x0100, 0x00,"0x0100",eReadWrite},//
	{0x0100, 0x00,"0x0100",eReadWrite},//
	{0x0100, 0x00,"0x0100",eReadWrite},//
	{0x3638, 0xff,"0x0100",eReadWrite},//analog control
	{0x0302, 0x1e,"0x0100",eReadWrite},//PLL
	{0x0303, 0x00,"0x0100",eReadWrite},//PLL
	{0x0304, 0x03,"0x0100",eReadWrite},//PLL
	{0x030e, 0x00,"0x0100",eReadWrite},//PLL
	{0x030f, 0x09,"0x0100",eReadWrite},//PLL
	{0x0312, 0x01,"0x0100",eReadWrite},//PLL
	{0x031e, 0x0c,"0x0100",eReadWrite},//PLL
	{0x3015, 0x01,"0x0100",eReadWrite},//clock Div
	{0x3018, 0x72,"0x0100",eReadWrite},//MIPI 4 lane
	{0x3020, 0x93,"0x0100",eReadWrite},//clock normal, pclk/1
	{0x3022, 0x01,"0x0100",eReadWrite},//pd_mini enable when rst_sync
	{0x3031, 0x0a,"0x0100",eReadWrite},//10-bit
	{0x3106, 0x01,"0x0100",eReadWrite},//PLL
	{0x3305, 0xf1,"0x0100",eReadWrite},//
	{0x3308, 0x00,"0x0100",eReadWrite},//
	{0x3309, 0x28,"0x0100",eReadWrite},//
	{0x330a, 0x00,"0x0100",eReadWrite},//
	{0x330b, 0x20,"0x0100",eReadWrite},//
	{0x330c, 0x00,"0x0100",eReadWrite},//
	{0x330d, 0x00,"0x0100",eReadWrite},//
	{0x330e, 0x00,"0x0100",eReadWrite},//
	{0x330f, 0x40,"0x0100",eReadWrite},//
	{0x3307, 0x04,"0x0100",eReadWrite},//
	{0x3604, 0x04,"0x0100",eReadWrite},//analog control
	{0x3602, 0x30,"0x0100",eReadWrite},//
	{0x3605, 0x00,"0x0100",eReadWrite},//
	{0x3607, 0x20,"0x0100",eReadWrite},//
	{0x3608, 0x11,"0x0100",eReadWrite},//
	{0x3609, 0x68,"0x0100",eReadWrite},//
	{0x360a, 0x40,"0x0100",eReadWrite},//
	{0x360c, 0xdd,"0x0100",eReadWrite},//
	{0x360e, 0x0c,"0x0100",eReadWrite},//
	{0x3610, 0x07,"0x0100",eReadWrite},//
	{0x3612, 0x86,"0x0100",eReadWrite},//
	{0x3613, 0x58,"0x0100",eReadWrite},//
	{0x3614, 0x28,"0x0100",eReadWrite},//
	{0x3617, 0x40,"0x0100",eReadWrite},//
	{0x3618, 0x5a,"0x0100",eReadWrite},//
	{0x3619, 0x9b,"0x0100",eReadWrite},//
	{0x361c, 0x00,"0x0100",eReadWrite},//
	{0x361d, 0x60,"0x0100",eReadWrite},//
	{0x3631, 0x60,"0x0100",eReadWrite},//
	{0x3633, 0x10,"0x0100",eReadWrite},//
	{0x3634, 0x10,"0x0100",eReadWrite},//
	{0x3635, 0x10,"0x0100",eReadWrite},//
	{0x3636, 0x10,"0x0100",eReadWrite},//
	{0x3641, 0x55,"0x0100",eReadWrite},//MIPI settings
	{0x3646, 0x86,"0x0100",eReadWrite},//MIPI settings
	{0x3647, 0x27,"0x0100",eReadWrite},//MIPI settings
	{0x364a, 0x1b,"0x0100",eReadWrite},//MIPI settings
	{0x3500, 0x00,"0x0100",eReadWrite},//exposurre HH
	{0x3501, 0x4c,"0x0100",eReadWrite},//expouere H
	{0x3502, 0x00,"0x0100",eReadWrite},//exposure L
	{0x3503, 0x00,"0x0100",eReadWrite},//gain no delay, exposure no delay
	{0x3508, 0x02,"0x0100",eReadWrite},//gain H
	{0x3509, 0x00,"0x0100",eReadWrite},//gain L
	{0x3700, 0x24,"0x0100",eReadWrite},//sensor control
	{0x3701, 0x0c,"0x0100",eReadWrite},//
	{0x3702, 0x28,"0x0100",eReadWrite},//
	{0x3703, 0x19,"0x0100",eReadWrite},//
	{0x3704, 0x14,"0x0100",eReadWrite},//
	{0x3705, 0x00,"0x0100",eReadWrite},//
	{0x3706, 0x38,"0x0100",eReadWrite},//
	{0x3707, 0x04,"0x0100",eReadWrite},//
	{0x3708, 0x24,"0x0100",eReadWrite},//
	{0x3709, 0x40,"0x0100",eReadWrite},//
	{0x370a, 0x00,"0x0100",eReadWrite},//
	{0x370b, 0xb8,"0x0100",eReadWrite},//
	{0x370c, 0x04,"0x0100",eReadWrite},//
	{0x3718, 0x12,"0x0100",eReadWrite},//
	{0x3719, 0x31,"0x0100",eReadWrite},//
	{0x3712, 0x42,"0x0100",eReadWrite},//
	{0x3714, 0x12,"0x0100",eReadWrite},//
	{0x371e, 0x19,"0x0100",eReadWrite},//
	{0x371f, 0x40,"0x0100",eReadWrite},//
	{0x3720, 0x05,"0x0100",eReadWrite},//
	{0x3721, 0x05,"0x0100",eReadWrite},//
	{0x3724, 0x02,"0x0100",eReadWrite},//
	{0x3725, 0x02,"0x0100",eReadWrite},//
	{0x3726, 0x06,"0x0100",eReadWrite},//
	{0x3728, 0x05,"0x0100",eReadWrite},//
	{0x3729, 0x02,"0x0100",eReadWrite},//
	{0x372a, 0x03,"0x0100",eReadWrite},//
	{0x372b, 0x53,"0x0100",eReadWrite},//
	{0x372c, 0xa3,"0x0100",eReadWrite},//
	{0x372d, 0x53,"0x0100",eReadWrite},//
	{0x372e, 0x06,"0x0100",eReadWrite},//
	{0x372f, 0x10,"0x0100",eReadWrite},//
	{0x3730, 0x01,"0x0100",eReadWrite},//
	{0x3731, 0x06,"0x0100",eReadWrite},//
	{0x3732, 0x14,"0x0100",eReadWrite},//
	{0x3733, 0x10,"0x0100",eReadWrite},//
	{0x3734, 0x40,"0x0100",eReadWrite},//
	{0x3736, 0x20,"0x0100",eReadWrite},//
	{0x373a, 0x02,"0x0100",eReadWrite},//
	{0x373b, 0x0c,"0x0100",eReadWrite},//
	{0x373c, 0x0a,"0x0100",eReadWrite},//
	{0x373e, 0x03,"0x0100",eReadWrite},//
	{0x3755, 0x40,"0x0100",eReadWrite},//
	{0x3758, 0x00,"0x0100",eReadWrite},//
	{0x3759, 0x4c,"0x0100",eReadWrite},//
	{0x375a, 0x06,"0x0100",eReadWrite},//
	{0x375b, 0x13,"0x0100",eReadWrite},//
	{0x375c, 0x40,"0x0100",eReadWrite},//
	{0x375d, 0x02,"0x0100",eReadWrite},//
	{0x375e, 0x00,"0x0100",eReadWrite},//
	{0x375f, 0x14,"0x0100",eReadWrite},//
	{0x3767, 0x1c,"0x0100",eReadWrite},//
	{0x3768, 0x04,"0x0100",eReadWrite},//
	{0x3769, 0x20,"0x0100",eReadWrite},//
	{0x376c, 0xc0,"0x0100",eReadWrite},//
	{0x376d, 0xc0,"0x0100",eReadWrite},//
	{0x376a, 0x08,"0x0100",eReadWrite},//
	{0x3761, 0x00,"0x0100",eReadWrite},//
	{0x3762, 0x00,"0x0100",eReadWrite},//
	{0x3763, 0x00,"0x0100",eReadWrite},//
	{0x3766, 0xff,"0x0100",eReadWrite},//
	{0x376b, 0x42,"0x0100",eReadWrite},//
	{0x3772, 0x23,"0x0100",eReadWrite},//
	{0x3773, 0x02,"0x0100",eReadWrite},//
	{0x3774, 0x16,"0x0100",eReadWrite},//
	{0x3775, 0x12,"0x0100",eReadWrite},//
	{0x3776, 0x08,"0x0100",eReadWrite},//
	{0x37a0, 0x44,"0x0100",eReadWrite},//
	{0x37a1, 0x3d,"0x0100",eReadWrite},//
	{0x37a2, 0x3d,"0x0100",eReadWrite},//
	{0x37a3, 0x01,"0x0100",eReadWrite},//
	{0x37a4, 0x00,"0x0100",eReadWrite},//
	{0x37a5, 0x08,"0x0100",eReadWrite},//
	{0x37a6, 0x00,"0x0100",eReadWrite},//
	{0x37a7, 0x44,"0x0100",eReadWrite},//
	{0x37a8, 0x58,"0x0100",eReadWrite},//
	{0x37a9, 0x58,"0x0100",eReadWrite},//
	{0x3760, 0x00,"0x0100",eReadWrite},//
	{0x376f, 0x01,"0x0100",eReadWrite},//
	{0x37aa, 0x44,"0x0100",eReadWrite},//
	{0x37ab, 0x2e,"0x0100",eReadWrite},//
	{0x37ac, 0x2e,"0x0100",eReadWrite},//
	{0x37ad, 0x33,"0x0100",eReadWrite},//
	{0x37ae, 0x0d,"0x0100",eReadWrite},//
	{0x37af, 0x0d,"0x0100",eReadWrite},//
	{0x37b0, 0x00,"0x0100",eReadWrite},//
	{0x37b1, 0x00,"0x0100",eReadWrite},//
	{0x37b2, 0x00,"0x0100",eReadWrite},//
	{0x37b3, 0x42,"0x0100",eReadWrite},//
	{0x37b4, 0x42,"0x0100",eReadWrite},//
	{0x37b5, 0x33,"0x0100",eReadWrite},//
	{0x37b6, 0x00,"0x0100",eReadWrite},//
	{0x37b7, 0x00,"0x0100",eReadWrite},//
	{0x37b8, 0x00,"0x0100",eReadWrite},//
	{0x37b9, 0xff,"0x0100",eReadWrite},//sensor control
	{0x3800, 0x00,"0x0100",eReadWrite},//X start H
	{0x3801, 0x0c,"0x0100",eReadWrite},//X start L
	{0x3802, 0x00,"0x0100",eReadWrite},//Y start H
	{0x3803, 0x0c,"0x0100",eReadWrite},//Y start L
	{0x3804, 0x0c,"0x0100",eReadWrite},//X end H
	{0x3805, 0xd3,"0x0100",eReadWrite},//X end L
	{0x3806, 0x09,"0x0100",eReadWrite},//Y end H
	{0x3807, 0xa3,"0x0100",eReadWrite},//Y end L
	{0x3808, 0x06,"0x0100",eReadWrite},//X output size H
	{0x3809, 0x60,"0x0100",eReadWrite},//X output size L
	{0x380a, 0x04,"0x0100",eReadWrite},//Y output size H
	{0x380b, 0xc8,"0x0100",eReadWrite},//Y output size L
	{0x380c, 0x07,"0x0100",eReadWrite},//HTS H
	{0x380d, 0x83,"0x0100",eReadWrite},//HTS L
	{0x380e, 0x04,"0x0100",eReadWrite},//VTS H
	{0x380f, 0xe0,"0x0100",eReadWrite},//VTS L
	{0x3810, 0x00,"0x0100",eReadWrite},//ISP X win H
	{0x3811, 0x04,"0x0100",eReadWrite},//ISP X win L
	{0x3813, 0x04,"0x0100",eReadWrite},//ISP Y win L
	{0x3814, 0x03,"0x0100",eReadWrite},//X inc odd
	{0x3815, 0x01,"0x0100",eReadWrite},//X inc even
	{0x3820, 0x00,"0x0100",eReadWrite},//flip off
	{0x3821, 0x67,"0x0100",eReadWrite},//hsync_en_o, fst_vbin, mirror on
	{0x382a, 0x03,"0x0100",eReadWrite},//Y inc odd
	{0x382b, 0x01,"0x0100",eReadWrite},//Y inc even
	{0x3830, 0x08,"0x0100",eReadWrite},//ablc_use_num[5:1]
	{0x3836, 0x02,"0x0100",eReadWrite},//zline_use_num[5:1]
	{0x3837, 0x18,"0x0100",eReadWrite},//vts_add_dis, cexp_gt_vts_offs=8
	{0x3841, 0xff,"0x0100",eReadWrite},//auto size
	{0x3846, 0x88,"0x0100",eReadWrite},//Y/X boundary pixel numbber for auto size mode
	{0x3d85, 0x06,"0x0100",eReadWrite},//OTP power up load data enable, OTP power up load setting enable
	{0x3d8c, 0x75,"0x0100",eReadWrite},//OTP setting start address H
	{0x3d8d, 0xef,"0x0100",eReadWrite},//OTP setting start address L
	{0x3f08, 0x0b,"0x0100",eReadWrite},//
	{0x4000, 0xf1,"0x0100",eReadWrite},//our range trig en, format chg en, gan chg en, exp chg en, median en
	{0x4001, 0x14,"0x0100",eReadWrite},//left 32 column, final BLC offset limitation enable
	{0x4005, 0x10,"0x0100",eReadWrite},//BLC target
	{0x400b, 0x0c,"0x0100",eReadWrite},//start line =0, offset limitation en, cut range function en
	{0x400d, 0x10,"0x0100",eReadWrite},//offset trigger threshold
	{0x401b, 0x00,"0x0100",eReadWrite},//
	{0x401d, 0x00,"0x0100",eReadWrite},//
	{0x4020, 0x01,"0x0100",eReadWrite},//anchor left start H
	{0x4021, 0x20,"0x0100",eReadWrite},//anchor left start L
	{0x4022, 0x01,"0x0100",eReadWrite},//anchor left end H
	{0x4023, 0x9f,"0x0100",eReadWrite},//anchor left end L
	{0x4024, 0x03,"0x0100",eReadWrite},//anchor right start H
	{0x4025, 0xe0,"0x0100",eReadWrite},//anchor right start L
	{0x4026, 0x04,"0x0100",eReadWrite},//anchor right end H
	{0x4027, 0x5f,"0x0100",eReadWrite},//anchor right end L
	{0x4028, 0x00,"0x0100",eReadWrite},//top zero line start
	{0x4029, 0x02,"0x0100",eReadWrite},//top zero line number
	{0x402a, 0x04,"0x0100",eReadWrite},//top black line start
	{0x402b, 0x04,"0x0100",eReadWrite},//top black line number
	{0x402c, 0x02,"0x0100",eReadWrite},//bottom zero line start
	{0x402d, 0x02,"0x0100",eReadWrite},//bottom zero line number
	{0x402e, 0x08,"0x0100",eReadWrite},//bottom black line start
	{0x402f, 0x02,"0x0100",eReadWrite},//bottom black line number
	{0x401f, 0x00,"0x0100",eReadWrite},//anchor one disable
	{0x4034, 0x3f,"0x0100",eReadWrite},//limitation BLC offset
	{0x4300, 0xff,"0x0100",eReadWrite},//clip max H
	{0x4301, 0x00,"0x0100",eReadWrite},//clip min H
	{0x4302, 0x0f,"0x0100",eReadWrite},//clip min L/clip max L
	{0x4500, 0x40,"0x0100",eReadWrite},//ADC sync control
	{0x4503, 0x10,"0x0100",eReadWrite},//
	{0x4601, 0x74,"0x0100",eReadWrite},//V FIFO control
	{0x481f, 0x32,"0x0100",eReadWrite},//clk_prepare_min
	{0x4837, 0x16,"0x0100",eReadWrite},//clock period
	{0x4850, 0x10,"0x0100",eReadWrite},//lane select
	{0x4851, 0x32,"0x0100",eReadWrite},//lane select
	{0x4b00, 0x2a,"0x0100",eReadWrite},//LVDS settings
	{0x4b0d, 0x00,"0x0100",eReadWrite},//LVDS settings
	{0x4d00, 0x04,"0x0100",eReadWrite},//temperature sensor
	{0x4d01, 0x18,"0x0100",eReadWrite},//temperature sensor
	{0x4d02, 0xc3,"0x0100",eReadWrite},//temperature sensor
	{0x4d03, 0xff,"0x0100",eReadWrite},//temperature sensor
	{0x4d04, 0xff,"0x0100",eReadWrite},//temperature sensor
	{0x4d05, 0xff,"0x0100",eReadWrite},//temperature sensor
	{0x5000, 0x96,"0x0100",eReadWrite},//LENC on, MWB on, BPC on, WPC on
	{0x5001, 0x01,"0x0100",eReadWrite},//BLC on
	{0x5002, 0x08,"0x0100",eReadWrite},//vario pixel off
	{0x5901, 0x00,"0x0100",eReadWrite},//
	{0x5e00, 0x00,"0x0100",eReadWrite},//test pattern off
	{0x5e01, 0x41,"0x0100",eReadWrite},//window cut enable
	{0x0100, 0x01,"0x0100",eReadWrite},//wake up, streaming
	{0x5b00, 0x02,"0x0100",eReadWrite},//OTP DPC start address H
	{0x5b01, 0xd0,"0x0100",eReadWrite},//OTP DPC start address L
	{0x5b02, 0x03,"0x0100",eReadWrite},//OTP DPC end address H
	{0x5b03, 0xff,"0x0100",eReadWrite},//OTP DPC end address L
	{0x5b05, 0x6c,"0x0100",eReadWrite},//Recover method 11, use 0x3ff to recover cluster, flip option enable
	{0x5780, 0xfc,"0x0100",eReadWrite},//DPC
	{0x5781, 0xdf,"0x0100",eReadWrite},//
	{0x5782, 0x3f,"0x0100",eReadWrite},//
	{0x5783, 0x08,"0x0100",eReadWrite},//
	{0x5784, 0x0c,"0x0100",eReadWrite},//
	{0x5786, 0x20,"0x0100",eReadWrite},//
	{0x5787, 0x40,"0x0100",eReadWrite},//
	{0x5788, 0x08,"0x0100",eReadWrite},//
	{0x5789, 0x08,"0x0100",eReadWrite},//
	{0x578a, 0x02,"0x0100",eReadWrite},//
	{0x578b, 0x01,"0x0100",eReadWrite},//
	{0x578c, 0x01,"0x0100",eReadWrite},//
	{0x578d, 0x0c,"0x0100",eReadWrite},//
	{0x578e, 0x02,"0x0100",eReadWrite},//
	{0x578f, 0x01,"0x0100",eReadWrite},//
	{0x5790, 0x01,"0x0100",eReadWrite},//DPC
	{0x5800, 0x1d,"0x0100",eReadWrite},//lens correction
	{0x5801, 0x0e,"0x0100",eReadWrite},//
	{0x5802, 0x0c,"0x0100",eReadWrite},//
	{0x5803, 0x0c,"0x0100",eReadWrite},//
	{0x5804, 0x0f,"0x0100",eReadWrite},//
	{0x5805, 0x22,"0x0100",eReadWrite},//
	{0x5806, 0x0a,"0x0100",eReadWrite},//
	{0x5807, 0x06,"0x0100",eReadWrite},//
	{0x5808, 0x05,"0x0100",eReadWrite},//
	{0x5809, 0x05,"0x0100",eReadWrite},//
	{0x580a, 0x07,"0x0100",eReadWrite},//
	{0x580b, 0x0a,"0x0100",eReadWrite},//
	{0x580c, 0x06,"0x0100",eReadWrite},//
	{0x580d, 0x02,"0x0100",eReadWrite},//
	{0x580e, 0x00,"0x0100",eReadWrite},//
	{0x580f, 0x00,"0x0100",eReadWrite},//
	{0x5810, 0x03,"0x0100",eReadWrite},//
	{0x5811, 0x07,"0x0100",eReadWrite},//
	{0x5812, 0x06,"0x0100",eReadWrite},//
	{0x5813, 0x02,"0x0100",eReadWrite},//
	{0x5814, 0x00,"0x0100",eReadWrite},//
	{0x5815, 0x00,"0x0100",eReadWrite},//
	{0x5816, 0x03,"0x0100",eReadWrite},//
	{0x5817, 0x07,"0x0100",eReadWrite},//
	{0x5818, 0x09,"0x0100",eReadWrite},//
	{0x5819, 0x06,"0x0100",eReadWrite},//
	{0x581a, 0x04,"0x0100",eReadWrite},//
	{0x581b, 0x04,"0x0100",eReadWrite},//
	{0x581c, 0x06,"0x0100",eReadWrite},//
	{0x581d, 0x0a,"0x0100",eReadWrite},//
	{0x581e, 0x19,"0x0100",eReadWrite},//
	{0x581f, 0x0d,"0x0100",eReadWrite},//
	{0x5820, 0x0b,"0x0100",eReadWrite},//
	{0x5821, 0x0b,"0x0100",eReadWrite},//
	{0x5822, 0x0e,"0x0100",eReadWrite},//
	{0x5823, 0x22,"0x0100",eReadWrite},//
	{0x5824, 0x23,"0x0100",eReadWrite},//
	{0x5825, 0x28,"0x0100",eReadWrite},//
	{0x5826, 0x29,"0x0100",eReadWrite},//
	{0x5827, 0x27,"0x0100",eReadWrite},//
	{0x5828, 0x13,"0x0100",eReadWrite},//
	{0x5829, 0x26,"0x0100",eReadWrite},//
	{0x582a, 0x33,"0x0100",eReadWrite},//
	{0x582b, 0x32,"0x0100",eReadWrite},//
	{0x582c, 0x33,"0x0100",eReadWrite},//
	{0x582d, 0x16,"0x0100",eReadWrite},//
	{0x582e, 0x14,"0x0100",eReadWrite},//
	{0x582f, 0x30,"0x0100",eReadWrite},//
	{0x5830, 0x31,"0x0100",eReadWrite},//
	{0x5831, 0x30,"0x0100",eReadWrite},//
	{0x5832, 0x15,"0x0100",eReadWrite},//
	{0x5833, 0x26,"0x0100",eReadWrite},//
	{0x5834, 0x23,"0x0100",eReadWrite},//
	{0x5835, 0x21,"0x0100",eReadWrite},//
	{0x5836, 0x23,"0x0100",eReadWrite},//
	{0x5837, 0x05,"0x0100",eReadWrite},//
	{0x5838, 0x36,"0x0100",eReadWrite},//
	{0x5839, 0x27,"0x0100",eReadWrite},//
	{0x583a, 0x28,"0x0100",eReadWrite},//
	{0x583b, 0x26,"0x0100",eReadWrite},//
	{0x583c, 0x24,"0x0100",eReadWrite},//
	{0x583d, 0xdf,"0x0100",eReadWrite},//lens correction

{0x0000 ,0x00,"eTableEnd",eTableEnd}
	
};

const IsiRegDescription_t Sensor_g_1632x1224_fourlane[] =
{
	// XVCLK=24Mhz, sysclk=72Mhz
	// MIPI 4 lane, 720Mbps/lane
	{0x0100, 0x00, "0x0100",eReadWrite},// software standby
	{0x030f, 0x09, "0x0100",eReadWrite},// PLL
	{0x3018, 0x72, "0x0100",eReadWrite},//
	{0x3106, 0x01, "0x0100",eReadWrite},//
	{0x3501, 0x4c, "0x0100",eReadWrite},// expouere H
	{0x3502, 0x00, "0x0100",eReadWrite},// exposure L
	{0x3700, 0x24, "0x0100",eReadWrite},// sensor control
	{0x3701, 0x0c, "0x0100",eReadWrite},//
	{0x3702, 0x28, "0x0100",eReadWrite},//
	{0x3703, 0x19, "0x0100",eReadWrite},//
	{0x3704, 0x14, "0x0100",eReadWrite},//
	{0x3706, 0x38, "0x0100",eReadWrite},//
	{0x3707, 0x04, "0x0100",eReadWrite},//
	{0x3708, 0x24, "0x0100",eReadWrite},//
	{0x3709, 0x40, "0x0100",eReadWrite},//
	{0x370a, 0x00, "0x0100",eReadWrite},//
	{0x370b, 0xb8, "0x0100",eReadWrite},//
	{0x370c, 0x04, "0x0100",eReadWrite},//
	{0x3718, 0x12, "0x0100",eReadWrite},//
	{0x3712, 0x42, "0x0100",eReadWrite},//
	{0x371e, 0x19, "0x0100",eReadWrite},//
	{0x371f, 0x40, "0x0100",eReadWrite},//
	{0x3720, 0x05, "0x0100",eReadWrite},//
	{0x3721, 0x05, "0x0100",eReadWrite},//
	{0x3724, 0x02, "0x0100",eReadWrite},//
	{0x3725, 0x02, "0x0100",eReadWrite},//
	{0x3726, 0x06, "0x0100",eReadWrite},//
	{0x3728, 0x05, "0x0100",eReadWrite},//
	{0x3729, 0x02, "0x0100",eReadWrite},//
	{0x372a, 0x03, "0x0100",eReadWrite},//
	{0x372b, 0x53, "0x0100",eReadWrite},//
	{0x372c, 0xa3, "0x0100",eReadWrite},//
	{0x372d, 0x53, "0x0100",eReadWrite},//
	{0x372e, 0x06, "0x0100",eReadWrite},//
	{0x372f, 0x10, "0x0100",eReadWrite},//
	{0x3730, 0x01, "0x0100",eReadWrite},//
	{0x3731, 0x06, "0x0100",eReadWrite},//
	{0x3732, 0x14, "0x0100",eReadWrite},//
	{0x3736, 0x20, "0x0100",eReadWrite},//
	{0x373a, 0x02, "0x0100",eReadWrite},//
	{0x373b, 0x0c, "0x0100",eReadWrite},//
	{0x373c, 0x0a, "0x0100",eReadWrite},//
	{0x373e, 0x03, "0x0100",eReadWrite},//
	{0x375a, 0x06, "0x0100",eReadWrite},//
	{0x375b, 0x13, "0x0100",eReadWrite},//
	{0x375d, 0x02, "0x0100",eReadWrite},//
	{0x375f, 0x14, "0x0100",eReadWrite},//
	{0x3767, 0x1c, "0x0100",eReadWrite},//
	{0x3772, 0x23, "0x0100",eReadWrite},//
	{0x3773, 0x02, "0x0100",eReadWrite},//
	{0x3774, 0x16, "0x0100",eReadWrite},//
	{0x3775, 0x12, "0x0100",eReadWrite},//
	{0x3776, 0x08, "0x0100",eReadWrite},//
	{0x37a0, 0x44, "0x0100",eReadWrite},//
	{0x37a1, 0x3d, "0x0100",eReadWrite},//
	{0x37a2, 0x3d, "0x0100",eReadWrite},//
	{0x37a3, 0x01, "0x0100",eReadWrite},//
	{0x37a5, 0x08, "0x0100",eReadWrite},//
	{0x37a7, 0x44, "0x0100",eReadWrite},//
	{0x37a8, 0x58, "0x0100",eReadWrite},//
	{0x37a9, 0x58, "0x0100",eReadWrite},//
	{0x37aa, 0x44, "0x0100",eReadWrite},//
	{0x37ab, 0x2e, "0x0100",eReadWrite},//
	{0x37ac, 0x2e, "0x0100",eReadWrite},//
	{0x37ad, 0x33, "0x0100",eReadWrite},//
	{0x37ae, 0x0d, "0x0100",eReadWrite},//
	{0x37af, 0x0d, "0x0100",eReadWrite},//
	{0x37b3, 0x42, "0x0100",eReadWrite},//
	{0x37b4, 0x42, "0x0100",eReadWrite},//
	{0x37b5, 0x33, "0x0100",eReadWrite},//
	{0x3808, 0x06, "0x0100",eReadWrite},// X output size H
	{0x3809, 0x60, "0x0100",eReadWrite},// X output size L
	{0x380a, 0x04, "0x0100",eReadWrite},// Y output size H
	{0x380b, 0xc8, "0x0100",eReadWrite},// Y output size L
	{0x380c, 0x07, "0x0100",eReadWrite},// HTS H
	{0x380d, 0x83, "0x0100",eReadWrite},// HTS L
	{0x380e, 0x04, "0x0100",eReadWrite},// VTS H
	{0x380f, 0xe0, "0x0100",eReadWrite},// VTS L
	{0x3813, 0x04, "0x0100",eReadWrite},// ISP Y win L
	{0x3814, 0x03, "0x0100",eReadWrite},// X inc odd
	{0x3821, 0x67, "0x0100",eReadWrite},// hsync_en_o, fst_vbin, mirror on
	{0x382a, 0x03, "0x0100",eReadWrite},// Y inc odd
	{0x382b, 0x01, "0x0100",eReadWrite},// Y inc even
	{0x3830, 0x08, "0x0100",eReadWrite},// ablc_use_num[5:1]
	{0x3836, 0x02, "0x0100",eReadWrite},// zline_use_num[5:1]
	{0x3846, 0x88, "0x0100",eReadWrite},// Y/X boundary pixel numbber for auto size mode
	{0x3f08, 0x0b, "0x0100",eReadWrite},//
	{0x4000, 0xf1, "0x0100",eReadWrite},// our range trig en, format chg en, gan chg en, exp chg en, median en
	{0x4001, 0x14, "0x0100",eReadWrite},// left 32 column, final BLC offset limitation enable
	{0x4020, 0x01, "0x0100",eReadWrite},// anchor left start H
	{0x4021, 0x20, "0x0100",eReadWrite},// anchor left start L
	{0x4022, 0x01, "0x0100",eReadWrite},// anchor left end H
	{0x4023, 0x9f, "0x0100",eReadWrite},// anchor left end L
	{0x4024, 0x03, "0x0100",eReadWrite},// anchor right start H
	{0x4025, 0xe0, "0x0100",eReadWrite},// anchor right start L
	{0x4026, 0x04, "0x0100",eReadWrite},// anchor right end H
	{0x4027, 0x5f, "0x0100",eReadWrite},// anchor right end L
	{0x402a, 0x04, "0x0100",eReadWrite},// top black line start
	{0x402b, 0x04, "0x0100",eReadWrite},// top black line number
	{0x402c, 0x02, "0x0100",eReadWrite},// bottom zero line start
	{0x402d, 0x02, "0x0100",eReadWrite},// bottom zero line number
	{0x402e, 0x08, "0x0100",eReadWrite},// bottom black line start
	{0x4500, 0x40, "0x0100",eReadWrite},// ADC sync control
	{0x4601, 0x74, "0x0100",eReadWrite},// V FIFO control
	{0x5002, 0x08, "0x0100",eReadWrite},// vario pixel off
	{0x5901, 0x00, "0x0100",eReadWrite},//
	{0x0100, 0x01, "0x0100",eReadWrite},// wake up, streaming
	{0x0000 ,0x00,"eTableEnd",eTableEnd}
};
const IsiRegDescription_t Sensor_g_1632x1224P30_fourlane_fpschg[] =
{    
	{0x380e, 0x04,"0x0100",eReadWrite}, // VTS H							 
	{0x380f, 0xdc,"0x0100",eReadWrite}, // VTS L
	{0x0000 ,0x00,"eTableEnd",eTableEnd}

};

const IsiRegDescription_t Sensor_g_1632x1224P25_fourlane_fpschg[] =
{  	
	{0x380e, 0x05,"0x0100",eReadWrite}, // VTS H							 
	{0x380f, 0xd4,"0x0100",eReadWrite}, // VTS L
	{0x0000 ,0x00,"eTableEnd",eTableEnd}
};


const IsiRegDescription_t Sensor_g_1632x1224P20_fourlane_fpschg[] =
{
    {0x380e, 0x07,"0x0100",eReadWrite}, // VTS H							 
	{0x380f, 0x4a,"0x0100",eReadWrite}, // VTS L
	{0x0000 ,0x00,"eTableEnd",eTableEnd}

};

const IsiRegDescription_t Sensor_g_1632x1224P15_fourlane_fpschg[] =
{
		
	{0x380e, 0x09,"0x0100",eReadWrite}, // VTS H							 
	{0x380f, 0xb8,"0x0100",eReadWrite}, // VTS L
	{0x0000 ,0x00,"eTableEnd",eTableEnd}

};

const IsiRegDescription_t Sensor_g_1632x1224P10_fourlane_fpschg[] =
{ 
	{0x380e, 0x0e,"0x0100",eReadWrite}, // VTS H							 
	{0x380f, 0x94,"0x0100",eReadWrite}, // VTS L	
	{0x0000 ,0x00,"eTableEnd",eTableEnd}

};
const IsiRegDescription_t Sensor_g_3264x2448_fourlane[] =
{
	// XVCLK=24Mhz, sysclk=144Mhz
	// MIPI 4 lane, 720Mbps/lane
	{0x0100, 0x00,"0x0100",eReadWrite}, //software standby
	{0x030f, 0x04,"0x0100",eReadWrite}, //PLL
	{0x3018, 0x72,"0x0100",eReadWrite}, //
	{0x3106, 0x01,"0x0100",eReadWrite}, //
	{0x3501, 0x98,"0x0100",eReadWrite}, //expouere H
	{0x3502, 0x60,"0x0100",eReadWrite}, //exposure L
	{0x3700, 0x48,"0x0100",eReadWrite}, //sensor control
	{0x3701, 0x18,"0x0100",eReadWrite}, //
	{0x3702, 0x50,"0x0100",eReadWrite}, //
	{0x3703, 0x32,"0x0100",eReadWrite}, //
	{0x3704, 0x28,"0x0100",eReadWrite}, //
	{0x3706, 0x70,"0x0100",eReadWrite}, //
	{0x3707, 0x08,"0x0100",eReadWrite}, //
	{0x3708, 0x48,"0x0100",eReadWrite}, //
	{0x3709, 0x80,"0x0100",eReadWrite}, //
	{0x370a, 0x01,"0x0100",eReadWrite}, //
	{0x370b, 0x70,"0x0100",eReadWrite}, //
	{0x370c, 0x07,"0x0100",eReadWrite}, //
	{0x3718, 0x14,"0x0100",eReadWrite}, //
	{0x3712, 0x44,"0x0100",eReadWrite}, //
	{0x371e, 0x31,"0x0100",eReadWrite}, //
	{0x371f, 0x7f,"0x0100",eReadWrite}, //
	{0x3720, 0x0a,"0x0100",eReadWrite}, //
	{0x3721, 0x0a,"0x0100",eReadWrite}, //
	{0x3724, 0x04,"0x0100",eReadWrite}, //
	{0x3725, 0x04,"0x0100",eReadWrite}, //
	{0x3726, 0x0c,"0x0100",eReadWrite}, //
	{0x3728, 0x0a,"0x0100",eReadWrite}, //
	{0x3729, 0x03,"0x0100",eReadWrite}, //
	{0x372a, 0x06,"0x0100",eReadWrite}, //
	{0x372b, 0xa6,"0x0100",eReadWrite}, //
	{0x372c, 0xa6,"0x0100",eReadWrite}, //
	{0x372d, 0xa6,"0x0100",eReadWrite}, //
	{0x372e, 0x0c,"0x0100",eReadWrite}, //
	{0x372f, 0x20,"0x0100",eReadWrite}, //
	{0x3730, 0x02,"0x0100",eReadWrite}, //
	{0x3731, 0x0c,"0x0100",eReadWrite}, //
	{0x3732, 0x28,"0x0100",eReadWrite}, //
	{0x3736, 0x30,"0x0100",eReadWrite}, //
	{0x373a, 0x04,"0x0100",eReadWrite}, //
	{0x373b, 0x18,"0x0100",eReadWrite}, //
	{0x373c, 0x14,"0x0100",eReadWrite}, //
	{0x373e, 0x06,"0x0100",eReadWrite}, //
	{0x375a, 0x0c,"0x0100",eReadWrite}, //
	{0x375b, 0x26,"0x0100",eReadWrite}, //
	{0x375d, 0x04,"0x0100",eReadWrite}, //
	{0x375f, 0x28,"0x0100",eReadWrite}, //
	{0x3767, 0x1e,"0x0100",eReadWrite}, //
	{0x3772, 0x46,"0x0100",eReadWrite}, //
	{0x3773, 0x04,"0x0100",eReadWrite}, //
	{0x3774, 0x2c,"0x0100",eReadWrite}, //
	{0x3775, 0x13,"0x0100",eReadWrite}, //
	{0x3776, 0x10,"0x0100",eReadWrite}, //
	{0x37a0, 0x88,"0x0100",eReadWrite}, //
	{0x37a1, 0x7a,"0x0100",eReadWrite}, //
	{0x37a2, 0x7a,"0x0100",eReadWrite}, //
	{0x37a3, 0x02,"0x0100",eReadWrite}, //
	{0x37a5, 0x09,"0x0100",eReadWrite}, //
	{0x37a7, 0x88,"0x0100",eReadWrite}, //
	{0x37a8, 0xb0,"0x0100",eReadWrite}, //
	{0x37a9, 0xb0,"0x0100",eReadWrite}, //
	{0x37aa, 0x88,"0x0100",eReadWrite}, //
	{0x37ab, 0x5c,"0x0100",eReadWrite}, //
	{0x37ac, 0x5c,"0x0100",eReadWrite}, //
	{0x37ad, 0x55,"0x0100",eReadWrite}, //
	{0x37ae, 0x19,"0x0100",eReadWrite}, //
	{0x37af, 0x19,"0x0100",eReadWrite}, //
	{0x37b3, 0x84,"0x0100",eReadWrite}, //
	{0x37b4, 0x84,"0x0100",eReadWrite}, //
	{0x37b5, 0x66,"0x0100",eReadWrite}, //
	{0x3808, 0x0c,"0x0100",eReadWrite}, //X output size H
	{0x3809, 0xc0,"0x0100",eReadWrite}, //X output size L
	{0x380a, 0x09,"0x0100",eReadWrite}, //Y output size H
	{0x380b, 0x90,"0x0100",eReadWrite}, //Y output size L
	{0x380c, 0x07,"0x0100",eReadWrite}, //HTS H
	{0x380d, 0x98,"0x0100",eReadWrite}, //HTS L
	{0x380e, 0x09,"0x0100",eReadWrite}, //VTS H
	{0x380f, 0xa6,"0x0100",eReadWrite}, //VTS L
	{0x3813, 0x02,"0x0100",eReadWrite}, //ISP Y win L
	{0x3814, 0x01,"0x0100",eReadWrite}, //X inc odd
	{0x3821, 0x46,"0x0100",eReadWrite}, //hsync_en_o, fst_vbin, mirror on
	{0x382a, 0x01,"0x0100",eReadWrite}, //Y inc odd
	{0x382b, 0x01,"0x0100",eReadWrite}, //Y inc even
	{0x3830, 0x04,"0x0100",eReadWrite}, //ablc_use_num[5:1]
	{0x3836, 0x01,"0x0100",eReadWrite}, //zline_use_num[5:1]
	{0x3846, 0x48,"0x0100",eReadWrite}, //Y/X boundary pixel numbber for auto size mode
	{0x3f08, 0x16,"0x0100",eReadWrite}, //
	{0x4000, 0xf1,"0x0100",eReadWrite}, //our range trig en, format chg en, gan chg en, exp chg en, median en
	{0x4001, 0x04,"0x0100",eReadWrite}, //left 32 column, final BLC offset limitation enable
	{0x4020, 0x02,"0x0100",eReadWrite}, //anchor left start H
	{0x4021, 0x40,"0x0100",eReadWrite}, //anchor left start L
	{0x4022, 0x03,"0x0100",eReadWrite}, //anchor left end H
	{0x4023, 0x3f,"0x0100",eReadWrite}, //anchor left end L
	{0x4024, 0x07,"0x0100",eReadWrite}, //anchor right start H
	{0x4025, 0xc0,"0x0100",eReadWrite}, //anchor right start L
	{0x4026, 0x08,"0x0100",eReadWrite}, //anchor right end H
	{0x4027, 0xbf,"0x0100",eReadWrite}, //anchor right end L
	{0x402a, 0x04,"0x0100",eReadWrite}, //top black line start
	{0x402b, 0x04,"0x0100",eReadWrite}, //top black line number
	{0x402c, 0x02,"0x0100",eReadWrite}, //bottom zero line start
	{0x402d, 0x02,"0x0100",eReadWrite}, //bottom zero line number
	{0x402e, 0x08,"0x0100",eReadWrite}, //bottom black line start
	{0x4500, 0x68,"0x0100",eReadWrite}, //ADC sync control
	{0x4601, 0x10,"0x0100",eReadWrite}, //V FIFO control
	{0x5002, 0x08,"0x0100",eReadWrite}, //vario pixel off
	{0x5901, 0x00,"0x0100",eReadWrite}, //
	{0x0100, 0x01,"0x0100",eReadWrite}, //wake up, streaming

{0x0000 ,0x00,"eTableEnd",eTableEnd}

};

const IsiRegDescription_t Sensor_g_3264x2448P7_fourlane_fpschg[] =
{
    {0x380e, 0x26,"0x0100",eReadWrite}, // VTS H						
	{0x380f, 0xa8,"0x0100",eReadWrite}, // VTS L						
    {0x0000 ,0x00,"eTableEnd",eTableEnd}
};
const IsiRegDescription_t Sensor_g_3264x2448P10_fourlane_fpschg[] =
{
    {0x380e, 0x1c,"0x0100",eReadWrite}, // VTS H						
	{0x380f, 0xfe,"0x0100",eReadWrite}, // VTS L						
    {0x0000 ,0x00,"eTableEnd",eTableEnd}
};
const IsiRegDescription_t Sensor_g_3264x2448P15_fourlane_fpschg[] =
{
    {0x380e, 0x13,"0x0100",eReadWrite}, // VTS H						
	{0x380f, 0x54,"0x0100",eReadWrite}, // VTS L						
    {0x0000 ,0x00,"eTableEnd",eTableEnd}
};
const IsiRegDescription_t Sensor_g_3264x2448P20_fourlane_fpschg[] =
{
    {0x380e, 0x0e,"0x0100",eReadWrite}, // VTS H						
	{0x380f, 0x7f,"0x0100",eReadWrite}, // VTS L						
    {0x0000 ,0x00,"eTableEnd",eTableEnd}
};
const IsiRegDescription_t Sensor_g_3264x2448P25_fourlane_fpschg[] =
{
    {0x380e, 0x0b,"0x0100",eReadWrite}, // VTS H						
	{0x380f, 0x98,"0x0100",eReadWrite}, // VTS L						
    {0x0000 ,0x00,"eTableEnd",eTableEnd}
};

const IsiRegDescription_t Sensor_g_3264x2448P30_fourlane_fpschg[] =
{
    {0x380e, 0x09,"0x0100",eReadWrite}, // VTS H						
	{0x380f, 0xaa,"0x0100",eReadWrite}, // VTS L						
    {0x0000 ,0x00,"eTableEnd",eTableEnd}
};



